#include <cstdlib>

#define ElemType int

typedef struct DNode //双链表
{
    ElemType data;              //数据域
    struct DNode *prior, *next; //前驱和后继指针
} DNode, *DLinkeList;

//双链表在按值查找和按位查找的操作和单链表相同！！

/*插入(在*p 后插入结点*s)
  关键代码片段：
    s->next = p->next;
    p->next->prior = s;
    s->prior = p;
    p->next = s;
  注意：上面四步中 1、2 两步必须在第 4 步之前！
*/

/*删除(删除*p 的后继结点*q)
  关键代码片段：
    p->next = q->next;
    q->next->prior = p;
    free(q);
*/